powerlevel10k 去除用户名或主机名显示
如果你不关心过程只想看解决方案请点击这里跳转
过程
因为zsh默认会显示用户名,而我的用户名用的是真实姓名,所以为了隐私需要隐藏,在bing了一下之后找到了个修改主题文件的解决方法,我按照教程放到了~/.zshrc
里,但是没有生效(这里挖个坑) 教程链接
我看到了部分其他教程是将prompt_context()
放在主题文件中,但是我复制到主题文件后仍然无效
这个过程中顺带发现我的主题地址和其他教程里的不一样,其他教程里的主题文件路径是在
1 | ~/.oh-my-zsh/themes/xxx.zsh-theme |
而我是在
1 | ~/.oh-my-zsh/custom/themes/powerlevel10k/powerlevel10k.zsh-theme |
因而进一步发现了我没有首次配置后自动生成的~/.p10k
文件,因为我的所有powerlevel10k自定义主题设置都是放在~.zhsrc
的(我是按照这个教程直接设置我的终端 教程链接)
开始确认要编写的文件确实是.zshrc
没错后,怀疑是不是.zshrc
的函数声明漏写了;教程中因为是直接放在主题文件下所以默认是函数,我没有修改直接复制到.zshrc
,但是加上之后依然没有生效
我回看了第一个教程,确实是没有写声明的,问题很明显不是关于prompt_context() {}
函数设置的
再进一步查找,我在p10k官网仓库的How do I add username and/or hostname to prompt?设置介绍下发现了一个名为 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
的prompt设置函数(prompt在这里应该是提示符的意思,这里得吐槽下微软的蹩脚翻译,把prompt翻译为了“令人惊叹的”😅)
在我的.zshrc文件中查找这条函数,内容为:
1 | POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(user device virtualenv dir vcs newline prompt_char) |
按照函数名,这些形参显然就是左边显示的内容
按照顺序,可以发现user
= 用户名 device
=主机名
现在知道了参数属性,只需要按照需要修改就好了,这里我希望只删除用户名,所以改为
1 | #删除user |
然后重载zsh使配置生效
1 | #终端输入 |
完成!
解决方法
首先查看是否有~/.p10k
文件
1 | 将此命令复制到终端中运行 |
如果有则在 .p10k
文件中进行操作,如果没有则像我一样在.zshrc
中进行操作
1 | ##找到并修改 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS 设置 |
enjoy p10K!